package com.Yukiha.gachamod.gachaMenu.client;

import java.util.*;

/**
 * 客户端抽卡数据缓存，用于界面展示。
 * 数据应由服务端通过网络同步并调用 updateFromServer() 更新。
 */
public class ClientGachaDataCache {

    // key = 稀有度，如 "普通", "优良", "史诗"
    // value = 对应稀有度下的模型名集合
    private static final Map<String, Set<String>> drawnModels = new HashMap<>();

    /**
     * 客户端从界面调用，获取当前缓存的所有模型
     */
    public static Map<String, Set<String>> getAllDrawnModels() {
        return drawnModels;
    }

    /**
     * 获取已抽模型的列表（全部合并为一个列表），用于 Menu 使用
     */
    public static List<String> getPlayerModelList() {
        List<String> result = new ArrayList<>();
        for (Set<String> set : drawnModels.values()) {
            result.addAll(set);
        }
        return result;
    }

    /**
     * 由服务端网络包调用，刷新客户端数据
     */
    public static void updateFromServer(Map<String, Set<String>> newData) {
        drawnModels.clear();
        drawnModels.putAll(newData);
    }

    /** 清空缓存（用于登出或重置） */
    public static void clear() {
        drawnModels.clear();
    }
}
